Cash flows in and out of a business or household, since every business or household has a set of accounts receivables and a set of accounts payables as well as assets. Business and households are very interested in the amount of cash readily available on a daily basis. Thus, business and households typically keep track of the amount of cash on hand (hereinafter, “COH”) on a daily basis, where cash on hand for a given day is defined as follows:Cash On Hand (COH)=Initial COH (COH of Previous Day)−Cash Payable (CP) for the Given Day+Cash Receivable (CR) for the Given Day.
Businesses are particularly interested in keeping the minimum daily COH above a certain threshold, since most businesses have to keep a certain daily balance of cash due to bank account requirements, legal requirements, accounting requirements, and the like and also for avoiding being too close to insolvency.
FIG. 1 illustrates an example of how the COH of a company fluctuates on a daily basis and an example of a minimum threshold of $15,000 above which the daily COH should be maintained. A company may have accounts receivable of $15,000, $20,000, $25,000, $ 10,000, $15,000, $20,000, $5,000, $20,000, and $5,000 to receive on January 1, January 2, January 3, January 4, January 5, January 6, January 7, January 8, and January 9, respectively. In addition, the company may also have accounts payable of $10,000, $10, 000, $45,000, $5,000, $25,000, $5,000 $0, $15,000, and $5,000 on January 1, January 2, January 3, January 4, January 5, January 6, January 7, January 8, and January 9, respectively. In this example, the company's COH will change by +$5,000, +$10,000, −$20,000, +$5,000, −$10,000, +$15,000, +$5,000, +$5,000, and $0, on January 1, January 2, January 3, January 4, January 5, January 6, January 7, January 8, and January 9, respectively. Accordingly, if the COH on December 31 of the previous year was $30,000, the daily COH of the company will fluctuate as shown in FIG. 1.
Referring to FIG. 1, the daily COH on January 5 was at its lowest ($20,000) among the days in the considered period of time. This $20,000 amount is referred to as the minimum daily COH for the given period. As stated above, businesses are very interested in maintaining the minimum daily COH above a certain threshold, such as $15,000, as an example shown in FIG. 1.
The daily COH for a given period may vary depending upon the manner in which particular payments are made or received. Many accounts payable and receivable have an amount to pay, a due date, certain penalties incurred for late payment, minimum required payment, and the like. Businesses may not be able to control the accounts receivable, since the accounts receivable depends upon the manner in which payments are received from other businesses. However, one or more of these elements of accounts payable may be utilized to control the minimum daily COH. For example, businesses may decide to make a certain payment earlier than the due date if there are certain benefits associated with early payments, such as a discount of the payment amount. As another example, early payments prior to the fiscal year end may reduce income taxes for the fiscal year. Businesses may also decide to make a certain payment later than the due date notwithstanding the penalties associated with late payments in order to prevent the COH from falling below the minimum threshold on a given day. Businesses also may prefer lumping more than one payment to a single payee (vendor) together to minimize the number of check runs, or may also prefer separating the payments for ease of identification and accounting.
Therefore, companies should, but typically do not, consider various factors (or objectives) in deciding when and how much of a payment to be make on a given day, such as maximizing the minimum daily cash on hand, minimizing or maximizing late payment penalties, tax impacts or tax deductibility, number of check runs, number of check runs per vendor, rewards or favorable terms given for early or full payments, postage fees incurred in mailing the payments, subjective importance or regret of each payment, and the like. A very efficient cash flow plan (a plan dictating when and how much of the payment obligations of the accounts payable should be satisfied) taking into consideration all of these objectives in an optimized manner could result in savings of a significant amount of money for the businesses.
It is a very complicated task to find a solution for an efficient cash flow plan while optimizing these various factors. Consider, for example, a highly simplified situation where the accounts payable includes 100 different payment obligations of $100 due on 10 different dates within 30 days. The search space for this situation would involve devising a plan to pay all or some part of each payment obligation on a certain date within the 30 day period while satisfying the above-mentioned factors objectives. Assuming that payments can be made in $1 increments between $0 and $100, just to simplify the calculation, there will be 100 ways to make a payment for each payment obligation. This means that there will be 100 ways to make payments on 100 payment obligations on any one of 30 days, resulting in 100100×30 combinations of possible solutions, clearly too many to be each individually considered even on the most powerful computers in existence. In addition, a variety of the above-mentioned objectives should be considered when finding the solution, such as maximizing the minimum daily COH while optimizing the other objectives such as minimizing late payment penalties, minimizing tax obligations or maximizing tax deductions, minimizing the number of check runs, minimizing the number of check runs per vendor, maximizing rewards or favorable terms given for early or full payments, minimizing postage fees incurred in mailing the payments, and maximizing subjective importance or minimizing regret for each payment, and the like with respect to a user-specified importance level for each objective. The solution space for such a situation will be enormous, discontinuous in scope and will typically involve non-linear, non-dimensional, and inter-dependent variables.
Such a complicated problem is very difficult to solve, but once a solution is obtained, it is easy to evaluate the solution. Such problems are called non-deterministic polynomial (“NP”) problems, which mean that it is possible to guess the solution by some non-deterministic algorithm and then check the solution, both in polynomial time. Generally, NP problems may be solved by genetic algorithms. However, so far there has been no attempt to apply a genetic algorithm to finding a solution for optimizing cash flow while optimizing certain objectives of a user.